#pragma once
#include "type_definition.h"
#include <vector>
#include <string>

class DT_divider
{
public:
	DT_divider(void);
	~DT_divider(void);
	bool set_graph(Graph graph_in);
	bool set_VertexMap(VertexMap vm_in);
	bool set_DT(std::vector<std::set<std::pair<std::string, bool> > > DT_in);
	bool divide_graph();
	std::vector<std::set<std::string>> parse_rest(std::set<std::string> target);
	std::vector<std::set<std::string>> get_subgroup();

private:
	Graph loc_graph;
	VertexMap vm;
	InvVertexMap inv_vm;
	std::vector<std::set<std::pair<std::string, bool > > > DT_list;
	bool init_flag;
	std::vector<std::set<std::string>> subgroup;


};

